package com.orangelife.webservice.service.bill;

import java.util.Map;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;

import org.apache.cxf.interceptor.InInterceptors;
import org.apache.cxf.interceptor.OutInterceptors;

import com.orangelife.webservice.service.bill.entity.BillDto;

@WebService
@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor")
@OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor")
public interface IBillWebService {
	
	

	/***
	 * 生成缴费细项(根据规则ID新)
	 * 

	 * @param BillDto
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/_computeFeeDetail")
	@Produces({ "application/json" })
	public Response _computeFeeDetail(
			@Context HttpServletRequest servletRequest,
			@WebParam BillDto billDto) throws Exception;
	
	
	

	/***
	 * 获取预缴费项目信息
	 * 

	 * @param BillDto
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/_computePreFeeDetail")
	@Produces({ "application/json" })
	public Response _computePreFeeDetail(
			@Context HttpServletRequest servletRequest,
			@WebParam BillDto billDto) throws Exception;

	/***
	 * 生成缴费细项
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/_compute")
	@Produces({ "application/json" })
	public Response addinfo(
			@Context HttpServletRequest servletRequest,
			@WebParam BillDto billDto) throws Exception;
	/***
	 * 获取历史账单生成记录
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@GET
	@Path("/pastFedetail/{commID}")
	@Produces({ "application/json" })
	public Response pastFeedetail(
			@Context HttpServletRequest servletRequest,
			@PathParam("commID")String commID ) throws Exception;
	
/***
* 获取最新完成计划
* 
* @param servletRequest
* @param payOrderID
* @param payMoney
* @param payName
* @param notifyID
* @return
* @throws Exception
*/

@POST
@Path("/lastFinishPlan")
@Produces({ "application/json" })
public Response lastFinishPlan(
	@Context HttpServletRequest servletRequest,
	@WebParam  Map<String,Object> map ) throws Exception;

	@POST
	@Path("/getNewPropBill")
	@Produces({ "application/json" })
public Response getNewPropFeeBill(
		@Context HttpServletRequest servletRequest,
		@WebParam  Map<String,Object> map) throws Exception;
/***
* 获取撤销计划
* 
* @param servletRequest
* @param payOrderID
* @param payMoney
* @param payName
* @param notifyID
* @return
* @throws Exception
*/

@GET
@Path("/cancelPlan")
@Produces({ "application/json" })
public Response cancelPlan(
	@Context HttpServletRequest servletRequest,
	@QueryParam("planID") String  planID  ) throws Exception;


/**
 * 查询计划
 * @author zxh
 * @date 2016年3月7日
 * @param servletRequest
 * @param commID
 * @param apartmentID
 * @return
 * @throws Exception
 */
@GET
@Path("/planForPay")
@Produces({ "application/json" })
public Response getprintplan2(
		@Context HttpServletRequest servletRequest,
		@QueryParam("commID") String commID,
		@QueryParam("planType") String planType,
		@QueryParam("pageIndex") String pageIndex,
		@QueryParam("pageSize") String pageSize
		) throws Exception;

/**
 * 查询计划
 * @author zxh
 * @date 2016年3月7日
 * @param servletRequest
 * @param commID
 * @param apartmentID
 * @return
 * @throws Exception
 */
@GET
@Path("/autoCrePreFee")
@Produces({ "application/json" })
public Response autoCrePreFee(
		@Context HttpServletRequest servletRequest,
		@QueryParam("commID") String commID,
		@QueryParam("planType") String planType,
		@QueryParam("pageIndex") String pageIndex,
		@QueryParam("pageSize") String pageSize
		) throws Exception;

}




